Why is MySQL MariaDB GREATEST(timestamp,NOW()) padding appending results with zeros?
The MariaDB doku claims for NOW():


  Returns the current date and time as a value in 'YYYY-MM-DD HH:MM:SS'
  or YYYYMMDDHHMMSS.uuuuuu format, depending on whether the function is
  used in a string or numeric context.


So this might be related to the fact that '2016-04-14 15:06:30' may look like a timestamp, but is actually a Varchar.

Try using timestamp literals:

SELECT GREATEST( TIMESTAMP '2016-04-14 15:06:30', NOW() )


Or functional conversion:

SELECT GREATEST( STR_TO_DATE('2016-04-14 15:06:31','%Y-%m-%d %H:%i:%s'), NOW() )