The suggested solution works perfectly, and has just one drawback: It adds response time. On my server, this is around 400ms response time for the redirect message, then the 700 to 800 ms for the details page.
Wouldn’t it be nice to resolve this at the level where the framework calculates the category-URL? Since there is already logic for the calculation of the number of member articles, it should be easy to say: if there’s only one product in, my URL is the products URL.