Different types of MAC sub headers are defined in MAC specification. This is because of MAC deals with different types of data such as MAC control element, MAC SDU. As per my understanding so far in MAC layer, it supports two MAC PDU sub headers (one with length field of 7 bytes and the other one with length field 15 bytes) for the MAC SDUs.
In both types of sub header, F bit is used which actually indicates whether length of MAC SDU is more than 128 bytes or not by holding the value 0 or 1 respectively. If F bit is zero then length of MAC SDU is less than 128 bytes else F bit will be 1 and legnth of MAC SDU will be considered more than 128 bytes.