Dzieje się tak dlatego, że NULL nie może być zrównany z żadną wartością.
Wyłącz opcję ANSI_NULLS, a następnie uruchom ją, zobaczysz teraz wiersz:
SET ANSI_NULLS OFF
select * from #foo --returns the one record we just created
select * from #foo where colA = null --does not throw an error and does not return a record! why??
select * from #foo where colA is null --returns the record drop table #foo