UPDATE. I believe I figured out what the problem is, but haven't yet figured out a solution.
It looks to me even though CategoryId is a numerical column, the filter somehow treats it as character and uses starts with rather than equals. E.g. it looks like I got all items for CategoryID like '8%'
I'm going to google a bit to confirm that behavior and then see if there is a solution for it.
So, I'm close but yet can not figure out how to pass the expression correctly, e.g.