In SQL (als Logiksprache) ist das so, weil null unbekannt/undefiniert bedeutet.
In Programmiersprachen (wie etwa C++ oder C#) ist ein Nullzeiger/eine Nullreferenz jedoch ein bestimmter Wert mit einer bestimmten Bedeutung – nichts.
Zwei Nichts ist äquivalent, aber zwei Unbekannte sind es nicht. Die Verwirrung entsteht dadurch, dass für beide Konzepte derselbe Name (Null) verwendet wird.