Debe ordenar los resultados y establecer un límite.
Suponiendo que datetime es lo que desea ordenar en:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
EDITAR: Para responder al comentario de OP:"el resultado que obtengo es el inicio de la fila 50 para la primera consulta y sigue por 49,48,47,46 ¿Es posible que pueda obtener este inicio de la fila 46,47,48,49,50?"
Puede hacer esto con el resultado en PHP, obteniendo las filas y almacenándolas en una matriz e invirtiendo la matriz. No creo que pueda recorrer eficientemente un recurso de resultado mysql a la inversa.
Para hacer esto en la consulta SQL, debe crear una tabla temporal con la consulta original:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM (
SELECT
lat,
lng,
datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
) AS tmp_markers
ORDER BY datetime ASC
";
El resultado de la consulta inicial se utiliza como tabla para buscar en una nueva consulta, que ordena por fecha y hora ascendente. Tuve que aplicar DATE_FORMAT en la consulta externa porque necesitamos el campo de fecha y hora para ordenar nuevamente.