можете да оставите да се присъедините към обща сума, която не е групирана или разделена, и да я разделите на вашата заявка за сума. по този начин просто правите общия избор веднъж за по-бързо изпълнение
SELECT cat, sum_atual, sum_atual/total_atual as percent_atual
FROM
( SELECT categories.cat AS cat, SUM(atual) AS sum_atual
FROM `table1`
JOIN categories ON table1.category_id=categories.id
GROUP BY categoria
) t
LEFT JOIN
( SELECT SUM(atual) as total_atual
FROM `table1`
) t1