tenias razon el error estaba en php, pero ahora que funciona no hace lo que yo quiero.
 
1.- SELECT * FROM trabajadores WHERE id = 162 no existe, osea es NULL
2.- SELECT * FROM prot_exclusion WHERE id = 1 jamas muestra ese record
3.- SELECT * FROM trabajadores WHERE id = 3 lo muestra siempre y cuando la sentencia: 
SELECT COUNT (*) FROM trabajadores WHERE id = 162 este formada de esta forma. 
en cambio si lo construyo de la siguiente forma:  
 Código PHP:
    CREATE PROCEDURE `cosit`.`procedure1` ()
BEGIN
  IF (SELECT COUNT(*) FROM trabajadores WHERE id = 1620) THEN
     SELECT * FROM trabajadores WHERE id = 3;
  ELSE
SELECT * FROM prot_exclusion WHERE id = 1
     ; 
  END IF; 
    
  me muestra el dato que quiero, pero el IS NULL no funciona, y lo necesito!!! 
saludos