http://dev.mysql.com/doc/refman /5.0/cs/create-index.html
"JEDINEČNÝ index vytváří omezení, takže všechny hodnoty v indexu musí být odlišné. Pokud se pokusíte přidat nový řádek s hodnotou klíče, která odpovídá existujícímu řádku, dojde k chybě. Toto omezení se nevztahuje na hodnoty NULL kromě Úložný modul BDB. U jiných modulů umožňuje UNIQUE index více hodnot NULL pro sloupce, které mohou obsahovat NULL."
Takže ne, nemůžete přimět MySQL, aby považovalo NULL za jedinečnou hodnotu. Myslím, že máte několik možností:můžete udělat to, co jste navrhli ve své otázce, a uložit "zvláštní hodnotu" místo null, nebo můžete pro tabulku použít engine BDB. Nemyslím si však, že tento nepatrný rozdíl v chování opravňuje k neobvyklému výběru úložiště.