Вроде нашел решение:
SELECT
name,
birthday,
DAYOFWEEK(birthday),
birthday + INTERVAL(YEAR(CURRENT_TIMESTAMP) - YEAR(birthday)) + 0 YEAR AS currbirthday,
birthday + INTERVAL(YEAR(CURRENT_TIMESTAMP) - YEAR(birthday)) + 1 YEAR AS nextbirthday
FROM oleg_birth
ORDER BY CASE WHEN currbirthday < CURRENT_TIMESTAMP
THEN nextbirthday
ELSE currbirthday
END