Först och främst missade du group by , så även om mysql inte klagar på det, har du hours och hours2 värden är meningslösa. För det andra är du resultatet av UNION kan läggas i härledd underfråga, så att du får önskad totalsumma :
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