I'm assuming that mySQL does a fairly good job of optimizing variable length fields. However, it can't hurt to keep the text fields in another table. What you're looking for is a join, something like this (assuming table1 is the main users table, table2 is the bio table, and textid is a field in both tables that stores the id of the bio):
SELECT table1.*, table2.* FROM table1
LEFT JOIN table2 ON table1.textid = table2.textid
WHERE table1.userid = 1