Para saber cuál está seleccionado, puedes hacer algo como esto:
SELECT IF(start_city_name='somecity', 'Departure time', 'Arrival time'),
IF(start_city_name='somecity', departure_time, arrival_time)
FROM time_schedule;
Realmente no puede tenerlo como el nombre de la columna, ¿qué pasa si hay una fila donde la condición es verdadera y otra donde la condición es falsa, cuál debería ser el nombre de la columna?
Sin embargo, si está contento de dividirlos en 2 columnas:
SELECT IF(start_city_name='somecity', NULL, arrival_time) AS 'Arrival time',
IF(start_city_name='somecity', departure_time, NULL) AS 'Departure time'
FROM time_schedule;
Esto es muy similar a simplemente decir:
SELECT arrival_time, departure_time
FROM time_schedule;
Excepto que arrival_time
será NULL
cuando la condición es verdadera y departure_time
será NULL
cuando la condición es falsa.