Some of the licensed feeds have carried a misclassified race type in the past for some courses - however, it's important to note the race_type distinction is race by race rather than by course, So to see the extent of any misclassification in race_type you can query for example:
SELECT race_type, count(race_type)
FROM historic_races_beta
WHERE meeting_date > '2018-01-01' and course="Beverley"
group by race_type
Which shows 4 out of 374 races labelled as all weather at Beverley. However, the going description as per your query makes it clear these are turf races.
In general, it's most accurate to use the going "Standard" description to define which courses run all weather courses rather than the race_type field eg.
SELECT DISTINCT course FROM historic_races_beta
WHERE going = 'Standard' AND meeting_date > '2018-01-01'
ORDER BY course ASC
(This covers the all weather courses as you'd expect, and also throws up Laytown which is of course one meeting a year run on a beach in Ireland, but otherwise all courses are correct).
Note also that there will be a final clean up on the beta database before it is promoted live at the end of the year where race by race misclassifications in race_type will also be corrected, so race_type will also be another way you can query all weather races accurately.