Inner select performance
This should be a little better. I believe joins are faster than nested selects, and that if with nested select may or may not select twice or use cached response.  I can't think of a good way of getting rid of the one nested select.  Otherwise, maybe you could write it as a stored procedure or virtual table.  (Note* any spelling mistakes of table or column names are a result of autocorrect)

SELECT lote.ordem as lote_ordem, 
lote.titulo as lote_titulo, 
lote.codigo as lote_codigo, 
lote.codigo_leilao, 
GREATEST( 
    (SELECT lance 
        FROM lance 
        WHERE lote.codigo = lance.codigo_lote 
        ORDER BY lance.data DESC 
        LIMIT 0,1), 
    lote.lance_minimo 
) AS lance2, 
youtube, 
youtube, 
-- lance.codigo_cadastro, 
lote_album.caminho_imagem as imagem_destaque, 
FROM lote
LEFT JOIN lote_album
ON lote_album.codigo_lote = lote.codigo 
WHERE lote.excluido &lt;&gt; 1
AND lote.codigo_leilao = 42 
AND lote_album.ordem = 1
ORDER BY lote.ordem ASC