http://dev.mysql.com/doc/refman /5.0/en/create-index.html
"Ett UNIKT index skapar en begränsning så att alla värden i indexet måste vara distinkta. Ett fel uppstår om du försöker lägga till en ny rad med ett nyckelvärde som matchar en befintlig rad. Denna begränsning gäller inte för NULL-värden förutom för BDB-lagringsmotor. För andra motorer tillåter ett UNIKT index flera NULL-värden för kolumner som kan innehålla NULL."
Så nej, du kan inte få MySQL att behandla NULL som ett unikt värde. Jag antar att du har ett par val:du kan göra vad du föreslog i din fråga och lagra ett "speciellt värde" istället för null, eller så kan du använda BDB-motorn för tabellen. Jag tror dock inte att denna mindre skillnad i beteende motiverar ett ovanligt val av lagringsmotor.