I would personally select your structure for the following reasons:
- It's more normalised and shows the intention of design better. It will be easier to understand for new people.
- It's better for future extension as categories and products are kept separately and are not mixed together. You may avoid adding nullable fields that are only for products or categories.
- His design has more nullable fields which may (not necessarily though) impact on performance, e.g. when selecting all products belonging to a category. Building a tree of categories will also be easier as you won't have to check for products.