Maak een andere tabel met een enkele kolom,
CREATE TABLE hours_list (
hour int NOT NULL PRIMARY KEY
)
Vul het met alle 24 uur.
Doe dan een join op die tafel om de nullen in te vullen.
SELECT
hs.hour as HOUR, COUNT(ws.ID) AS HOUR_STAT
FROM hours_list hs
LEFT JOIN cms_webstat ws ON hs.hour = hour(ws.TIMESTAMP_X)
GROUP BY hs.hour
ORDER BY hs.hour DESC