No es muy común, no. No existe una forma nativa de compartir una clave principal. Lo que podría hacer en su situación es esto:
product_table
id
name
category
general_fields...
product_type1_table:
id
product_id
product_type1_fields...
product_type2_table:
id
product_id
product_type2_fields...
product_to_category_table:
product_id
category_id
Es decir, hay una tabla maestra de productos que tiene entradas para todos los productos y tiene los campos que se generalizan entre los tipos, y tablas especificadas por tipo con claves foráneas en la tabla maestra de productos, que tienen los datos específicos del tipo.