OK, apologies from Bozo central, the left inner join thing is a red herring - caused by a typo in my test query! 😟
However, I still have the problem.
So I have flushed the cache and I still have the problem. Product exists and can be searched and displayed, but the category browse function doesn't work. So this now must be caused by either the 'exclude subproducts' clause or the user session id.
R.