Just throwing this out there for consideration. Would it make more sense to have a separate Category table and Production Table? Seems like you are trying to dual purpose this one table for use for both Categories and Products.
I can see the potential problem here, but you example is confusing. You show Nike and Adidas and say that they will both see duplicates. How would that be the case if you are filtering by business? I think your example should be showing the fact that you have two rows for Nike Shoes, and that’s most likely why you see duplicates.
Couldn’t you just use this as your filter. Only show Categories where there isn’t a Product filled in?
Ultimately I would probably set things up differently. But to stick with your current setup, what you can do is create a template column that joins Business and Category together. Using that template, create a single relation back to itself. Then create a Lookup column that returns the Row ID from the relation. Finally create an IF column that checks if the Row ID matches the Lookup Row ID. If it’s a match, then return true, else false. Or you could probably just have the IF column return the Category name. This will give you a boolean value of true (or Category name) only in the rows that have that Business/Category combination the first time it appears in the data.