Non l'ho mai provato ma teoricamente dovrebbe funzionare...

Mi baso su quanto mi dici tu, cioe' uno dei tre e' valorizzato ma gli altri due no. Concatenare i campi email separati da uno spazio, dovresti trovare il nome con spazi (uno o due) prima e/o dopo. Questi si tolgono con TRIM(). Se invece gli indirizzi e-mail fossero presenti in piu' di un campo bisognera' fare diversamente.
codice:
SELECT trim(concat(email1,' ',email2,' ',email3)) as email
FROM tabella