isnull Replaces NULL with the specified replacement value.
ISNULL(ID,x) replaces all the null value of ID with x
where x= has a value.
where Id=0(without isnull check) means it'll skip all the ID containing the null value in the table.
and there is another problem that there are some datatype that are not comparable with the null value so in that case you can get the comparison error.
so, using isnull(ID,0) is used to set all the null value of ID by 0 and then coparing to the condition value(xxx).
for more info check this..
http://msdn.microsoft.com/en-us/library/ms184325.aspx[
^]