usa el OPTIONALLY ENCLOSED BY
cláusula.
SELECT *
FROM table
INTO OUTFILE 'table.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
El OPTIONALLY
modificador hace que haga esto solo para columnas de cadena.
También debe omitir la subconsulta que devuelve la línea de encabezado. El problema es que todas las filas de una unión deben tener los mismos tipos en las columnas, por lo que está convirtiendo todas las cadenas en cadenas para que coincidan con la línea del encabezado.