Data modeling with many attributes where few apply to each record
Option 4:  Class Table Inheritance

This is a design technique used to implement a class/subclass situation.  In this situation, attributes often apply only to one subclass, and not to all rows in the table. Visit the tag of the same name over in SO to see a bunch of relevant  questions and answers.

This has the advantage eliminating NULLS (mostly), providing fast and easy joins, and enforcing the 1:1 neture of the class:subclass relationship.

Your Option 1 is sometimes called "Single Table Inheritance"