Это проблема не настроек инфоблока или компонента. Проблема в архитектуре или настройке роутинга.
Если у вас в принципе возможно ситуация когда некоторые товары лежат на первом уровне раздела, т.е. у вас есть товары у которых такой путь корень/раздел/подраздел/элемент не получается в принципе, потому что нет подраздела, то проблема в архитектуре и она не решаема, так как противоречит ей.
Проще говоря - как система должна, не обращаясь к каталогу, отличить товар у которого есть подраздел от товара у которого подраздела нет? Это невозможно. Тут только один вариант - в скрипте детального показа выбрасывать 404 в случае если товар открыт не по каноническому адресу. Т.е. модифицировать компонента детального вида каталога.
Если же для ЛЮБОГО товара может быть сформирован путь вида корень/раздел/подраздел/элемент, т.е. канонический путь любого товара ВСЕГДА включает раздел и один подраздел, то проблема легко решается ручной настройкой urlrewrite