Trigger not functioning correctly in MYSQL
Try this code:

DROP TABLE applicationsolution;
CREATE TABLE applicationsolution (myid INTEGER AUTO_INCREMENT PRIMARY KEY,
                                  created DATETIME);


Sample table.

delimiter //    
CREATE TRIGGER applicationsolution_OnInsert
BEFORE INSERT ON applicationsolution 
FOR EACH ROW
BEGIN
  IF NEW.created IS NULL
    THEN SET NEW.created = CURRENT_TIMESTAMP();
  END IF;
END //
delimiter ;


Trigger - which works - see below.

INSERT INTO applicationsolution (created) VALUES (NULL);
INSERT INTO applicationsolution (created) VALUES (NULL);


Sample data insert - will produce two records.

SELECT * FROM applicationsolution;

myid,created
==== =======
1,"2016-06-24 21:50:40"
2,"2016-06-24 21:50:40"


So far, so good for NULLs. Now for the UPDATE trigger:

delimiter // 
CREATE TRIGGER applicationsolution_OnUpdate 
BEFORE UPDATE ON applicationsolution 
FOR EACH ROW 
BEGIN 
  IF NEW.created = '0000-00-00 00:00:00' 
    THEN SET NEW.created = current_timestamp(); 
  END IF; 
END//
delimiter ;


Now do an update.

UPDATE applicationsolution  SET created = '0000-00-00 00:00:00'
WHERE myid = 2;


SELECT * FROM applicationsolution;


And the results:

myid,created
1,"2016-06-24 21:50:40"
2,"2016-06-24 21:54:30"


Note the timestamp change in record 2 which shows that if you try to INSERT a created of '0000-00-00 00:00:00', you get a CURRENT_TIMESTAMP.

Does this do what you want? I think there are two problems with your code. It's not formatted properly - this made it very difficult to follow the logic and difficult to see that the second trigger was incomplete. You also put the INSERT code in the ON UPDATE trigger and vice-versa.

Furthermore, CURRENT_TIMESTAMP seems to work better than NOW().