Suponiendo la existencia de dos tablas 
comuna y 
ciudad, la cosa andaría por aquí:    
Código MySQL:
Ver original-   ef.numero_factura, 
-   ef.fecha_factura, 
-   (CONCAT(- c.rut_cliente ,"-",- c.dv_cliente )-  rut_dv_cliente ,
 
-   c.giro_cliente, 
-   c.direccion_cliente, 
-   c.nombre_comuna, 
-   c.nombre_ciudad, 
-   cf.linea_factura, 
-   cf.id_contrato_cliente, 
-   cf.cantidad, 
-   cf.descuento, 
-   cf.precio_unitario, 
-   pf.valor_neto, 
-   pf.valor_iva, 
-   pf.valor_bruto, 
-   pf.total_descuento 
- FROM-  encabezado_factura ef 
 
-   LEFT JOIN-  ciudad ci  ON-  ci.id_ciudad  =-  c.id_ciudad ;
 
Estoy suprimiendo las subconsultas en el SELECT porque esos datos deben obtenerse del FROM, de lo contrario la consulta será 
MUY ineficiente.
Esto puede requerir algun ajuste, conforme sean los datos y las tablas que tu tengas.