SELECT (SELECT SUM(table1.col1) FROM table1) AS sum_1,
(SELECT SUM(table2.col1) FROM table2) AS sum_2;
También puedes escribirlo como:
SELECT t1.sum_c1, t1.sum_c2, t2.sum_t2_c1
FROM
(
SELECT SUM(col1) sum_c1,
SUM(col2) sum_c2
FROM table1
) t1
FULL OUTER JOIN
(
SELECT SUM(col1) sum_t2_c1
FROM table2
) t2 ON 1=1;
FULL JOIN se usa con una condición dud para que cualquiera de las subconsultas no produzca resultados (vacía) sin que la consulta mayor no tenga ningún resultado.
No creo que la consulta, tal como la escribió, hubiera producido el resultado que esperaba obtener, porque está haciendo una UNIÓN CRUZADA entre la tabla 1 y la tabla 2, lo que inflaría cada SUMA por el número de filas en la otra tabla. Tenga en cuenta que si table1/table2 está vacía, CROSS JOIN hará que X filas por 0 filas devuelvan un resultado vacío.
Mire este SQL Fiddle y compare los resultados.