A razão é que, de acordo com a especificação SQL,
Foo IN(A,B,C) traduz para ( Foo = A Or Foo = B Or Foo = C ) . Assim, se tivermos Foo In(Null, 1, 2) obtemos Foo = Null Or Foo = 1 Or Foo = 2 . Desde Foo = Null é sempre UNKNOWN e avaliado como False para fins de filtragem, Nulos em sua expressão IN não retornarão resultados.