Why is deadlock alert not working?
Probably the error 1205 is not set up to be logged in ERRORLOG. Look it up in sys.messages:

SELECT *
FROM sys.messages 
WHERE message_id = 1205;


If the column is_event_logged is set to 0, change it this way:

EXEC master.sys.sp_altermessage 
    @message_id = 1205,
    @parameter = 'WITH_LOG',
    @parameter_value = 'true';


The documentation for sp_add_alert describes under which conditions an alert is raised:


  Remarks
  
  sp_add_alert must be run from the msdb database.
  
  These are the circumstances under which errors/messages generated by SQL Server and SQL Server applications are sent to the Windows application log and can therefore raise alerts:
  
  
  Severity 19 or higher sys.messages errors
  Any RAISERROR statement invoked with WITH LOG syntax
  Any sys.messages error modified or created using sp_altermessage
  Any event logged using xp_logevent