Provavelmente poderia apenas usar um UNION e, em seguida, cortar os resultados extras no código procedural que exibe os resultados (já que isso retornará 20 linhas nos casos sem borda):
(SELECT
*
FROM photos
WHERE ID < #current_id#
ORDER BY ID DESC LIMIT 10)
UNION
(SELECT *
FROM photos
WHERE ID >= #current_id#
ORDER BY ID ASC LIMIT 10)
ORDER BY ID ASC
EDIT:Aumento do limite para 10 em ambos os lados da UNIÃO, conforme sugerido por le dorfier .
EDIT 2:Modificado para refletir melhor a implementação final, conforme sugerido por Dominic.