We have features which represent the locations of pupils within the local area and would like to change the colour of these features to represent whether they reside within the catchment area of a particular school or not?
Can anyone advise?
As @Erik said rule-based styling should work.
Another approach might be to use the catchment area of the school (vector) to spatially join the pupils (points) to that area. Then use the information inside the attribute table for your symbology rules.
Might be of help: Understanding Join Attributes by Location in QGIS?