No, MySQL sta facendo la cosa giusta, secondo la specifica SQL-99.
https://mariadb.com/kb/en/sql- 99/vincolo_tipo_vincolo-unico/
Se utilizzi un vincolo UNIQUE ma non vuoi più righe con NULL, dichiara le colonne come NOT NULL
e vietare qualsiasi riga da NULL.