First of all, the title of this question is horrible, but I didn\'t find a better way to describe my issue.
There\'s probably a very easy way to do this, but I couldn\'t
Your query is nearly correct. Just use PRODUCTID and not ID.
PRODUCTID
ID
SELECT * FROM xx WHERE f_COLOUR = "GREEN" UNION SELECT * FROM xx WHERE PRODUCTID not in (SELECT PRODUCTID FROM xx WHERE f_COLOUR = "GREEN");