That's the problem - logically it won't work with data stored like that.
You are comparing the string Single,Internet,Parking stored in your db field with an array of values, returned by the checkboxes. So:
Single,Internet,Parking IN ['Internet', 'Parking'] won't return anything.
You just need to store the amenities in a relational table, which stores the record ID and the amenity associated with it, just as:
product1 - amenity1
prodcut1 - amenity2
product1 - amenity3
product2 - amenity2
...
product99 - amenity1