http://dev.mysql.com/doc/refman /5.0/en/create-index.html
"Een UNIEKE index creëert een beperking zodat alle waarden in de index verschillend moeten zijn. Er treedt een fout op als u een nieuwe rij probeert toe te voegen met een sleutelwaarde die overeenkomt met een bestaande rij. Deze beperking is niet van toepassing op NULL-waarden, behalve voor de BDB-opslagengine. Voor andere engines staat een UNIEKE index meerdere NULL-waarden toe voor kolommen die NULL kunnen bevatten."
Dus nee, je kunt MySQL niet zover krijgen dat NULL als een unieke waarde wordt behandeld. Ik denk dat je een aantal keuzes hebt:je zou kunnen doen wat je in je vraag hebt voorgesteld en een "speciale waarde" opslaan in plaats van null, of je zou de BDB-engine voor de tabel kunnen gebruiken. Ik denk echter niet dat dit kleine verschil in gedrag een ongewone keuze voor een opslagengine rechtvaardigt.