Hola Alberto
 
Trata de utilizar parentesis para separar los union y tratar que te respete la sentencia ORDER BY. 
Por lo que quieres, veo que las estas utilizando bien, pero según cuentas, no te respeta cuando haces 
ORDER BY fecha DESC. 
Si esto no soluciona el problema, trata de utilizar una subconsulta de la siguiente forma:   
Código SQL:
Ver original- SELECT *FROM 
- ( 
- SELECT idmc, to_char(fechamc, 'dd/MM/yyyy HH24:MI:ss') AS fecha, descripcionmc 
- FROM tabla1 
- WHERE idmc = '3411' 
- UNION 
- SELECT idhm, to_char(fechahm, 'dd/MM/yyyy HH24:MI:ss') AS fecha, descriphm  
- FROM tabla2  
- WHERE tidhm = '3411'  
- ) t 
- ORDER BY t.fecha DESC;