Yes, we can account for blank subcategories and go to none. I'd confirm how many levels of subcategories... You may just want to use a single categories table with a ParentCategoryID field to nest any number of sublevels and the main categories in a single table.
You should also confirm that a single product can only be in one category at a time.