Designing a Products database: One Products table or many separated by vendor?
I would go with number 1. Having a separate table for each vendor or each product type will be a nightmare when trying to run reports that need data from multiple product tables. You don't want to have to create a new table each time you add a vendor or product type.
I understand your inclination coming from a spreadsheet, but with the ability to query the records easily, separating the products into multiple tables is not the way to go.


  I am inclined to say that there is a downside because products of one category will have many NULLs in attributes meant for other categories, but I'm not sure if this is actually a negative.


To prevent this, attributes should be in a separate table. 

For example, a partial table definition may be as follows:

products
-- id
-- name

product_attributes 
--product_id
--name
--value


attributes.product_id is a foreign key of products.id. 

To further normalize it you could define the attributes in a separate table and have an attribute_id field instead of attribute_name:

    attributes
    --id
    --name

    product_attributes 
    --attribute_id (foreign key of attributes.id)
    --value


(edited for spelling)