Mysql erlaubt mehrere NULLen in einer eindeutigen Einschränkung. In Ihrer serial_number Spalte ersetzen NULL mit einem Wert und der Constraint wird ausgelöst, siehe:
https://sqlfiddle.com/#!2/9dbd19/1
Machen Sie die Spalte NICHT NULL und verwenden Sie '' die leer ist.