Използвайте COALESCE
SELECT id,
GREATEST(date1,
COALESCE(date2, 0),
COALESCE(date3, 0)) as datemax
FROM mytable
Актуализация:Този отговор използва преди това IFNULL
което работи, но както Майк Чембърлейн посочи в коментарите, COALESCE
всъщност е предпочитаният метод.