I don't think this is currently possible since it's a comma seperated value.
All filtering options are void since searching on exact word contains either 0 or 2 since both contain the word black.
Unless I am mistaken CAML Query does not Support removing a character in this case the comma and then search for exact word. if it was space seperated instead there would probeply be possibilities however as it is right there is not.
Filter on contains the words:
and exact match: black
Though less than effecient you could search for annything containing black.
And then split on the comma and then filter on exact word black.
This would reduce your Initial call and then you could filter properly with a smaller data object/Array.
Hope this helps