Database design that requires an index over two tables
If you have an index on product_categories (category_id), as well as the one you already have on orders (customer_id) then this type of query should be very fast.  You can do a highly specific index scan on each table separately, then hash join the results.

https://explain.depesz.com/s/JEpZ

If that isn't fast enough for you, or you can't get it to use such a plan even when you have indexes in place, then I'm afraid you will have to give us a lot more info, like the actual query plan including timing, and what time you hope to achieve.