Why is there no two-bit data type?
Like Geier said, processors can't directly handle values smaller than a byte.  So a boolean type that was actually implemented as just a single bit would in most cases be inefficient.  The processor needs to do a bit of extra work to extract just that one bit.

The reason that the boolean type exists is more about semantics than anything else.  Logical true/false values is a very useful concept.  In many programming languages a conditional expression like "if x is 5" has a boolean value as the result.  And lets not forget that a boolean type corresponds nicely to a single bit, which is the building block of the binary numbers that computers work with.

There has been tri-state "booleans" in use, and there probably still is today.  But they are generally less useful and more complicated to deal with than the ordinary true/false ones.

What you are talking about would generally be implemented as bit flags (or bit fields), or simply by assigning different meanings to different numbers.