It works for me:
SELECT ISNULL(Sum(iD),0) FROM [myDatabase].[dbo].[myTable] WHERE iD=4
Returns a single row, containing 0 as there are no records with an id of "4". If I remove the WHERE clause, it returns a single row, containing "3" as my table has two records, with iDs "1" and "2"
How are you using this?