Top level entry url not rendering category in url
I imagine it's because you're trying to access productCategory on category instead of the entry. When you're setting entry urls you don't need to use the entry prefix as it automatically expects this to be the case. So try products{productCategory.first().slug}/{slug}