O meio ANSI é usar COALESCE :
SELECT COALESCE(a2.date, a1.date) AS `date`
...
A sintaxe nativa do MySQL é IFNULL :
SELECT IFNULL(a2.date, a1.date) AS `date`
...
Ao contrário do COALESCE, o IFNULL não é portátil para outros bancos de dados.
Outra sintaxe ANSI, a expressão CASE , é uma opção:
SELECT CASE
WHEN a2.date IS NULL THEN a1.date
ELSE a2.date
END AS `date`
...
Requer mais direção para funcionar corretamente, mas é mais flexível se os requisitos mudarem.