0 results if 1 variant of 5 is excluded from search

I think you need to implement an IIndexingProviderPreProcessor as in Campaign prices stop working then adding custom IIndexingProviderPreProcessor to move the values from all the variants into one field that you are using for the filtering.