WHERE price = NULL という条件をつけてSELECTを実行すると、結果はどうなりますか?
正解は、1行も返らない、です。SQLではNULLは不明な値を表し、NULLとの比較(=やなど)の結果は真でも偽でもなくUNKNOWNとなります。WHERE句はUNKNOWNの行を結果に含めないため、price = NULLでは該当する行が1件も得られません。NULLかどうかを判定するには、必ずIS NULLまたはIS NOT NULLを使います。この仕様はNULLの取り扱いでよくある落とし穴です。