Przede wszystkim przegapiłeś group by , więc chociaż mysql nie narzeka na to, to hours i hours2 wartości są bez znaczenia. Po drugie, otrzymujesz wynik UNION można umieścić w pochodnym podzapytaniu, więc uzyskasz pożądaną sumę :
SELECT SUM(hr) FROM
(
Select sum(hours) as hr FROM table WHERE name='xxx' and Description='Worked'
UNION ALL
Select sum(hours2) as hr FROM table WHERE name='xxx' and Description2='Worked'
)a