Unlike with all other data types, MySQL handles each BLOB and TEXT value as an object with its own identity. Storage engines often store them specially; InnoDB may use a separate "external" storage area for them when they're large. Each value requires from one to four bytes of storage space in the row and enough space in external storage to actually hold the value.

So TEXT column of row will only have a reference to where the actual data is stored (which does take up space, but only 4 bytes-ish (depends on the system) a row).

TEXT column itself will remain empty until you populate it.