Bueno la verdad no sé si será ineficiente ya que tendría que hacer una consulta previa para actualizar.
Al tema, investigando en el manual encontré otra forma , usando el LIMIT en una subconsulta, pero este a su vez dentro de un alias porque me saldría un error parecido:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Código:
UPDATE galeria_imagen SET inicial = 1
WHERE id_imagen IN (
SELECT id_imagen FROM (
SELECT gi.id_imagen FROM galeria_imagen gi INNER JOIN imagen as img ON gi.id_imagen = img.id_imagen WHERE id_galeria='1' ORDER BY fecha_registro DESC LIMIT 1
) a
)
De esta manera también se puede actualizar