Just a note
I have managed to do it but possibly not the best way.
I have done the following:-
SELECT COALESCE(`expiry_date`,DATE_ADD(NOW(), INTERVAL 1 YEAR)) AS `mock_date`, `expiry_date` AS `expiry_date`
FROM table_name
ORDER BY `mock_date` ASC
LIMIT 5;
The dates returned should not be past a year in advance so the query should be fine.
Just in case people are not aware COALESCE() returns the first non null value, so it will return the normal expiry date if it is not null otherwise it will return the current date plus a year.