The ANSI means is to use COALESCE:
SELECT COALESCE(a2.date, a1.date) AS `date`
...
The MySQL native syntax is IFNULL:
SELECT IFNULL(a2.date, a1.date) AS `date`
...
Unlike COALESCE, IFNULL is not portable to other databases.
Another ANSI syntax, the CASE expression, is an option:
SELECT CASE
WHEN a2.date IS NULL THEN a1.date
ELSE a2.date
END AS `date`
...
It requires more direction to work properly, but is more flexible if requirements change.