Performance: It will be quicker with the NULL value because you don't need to join with another table to get the age.
Space: A NULL value takes up one byte (depending on system) to store so you'd have to add this to the storage requirements. If you're using a separate table then you'd only be storing the values you know and not the Nulls however you'd also need to store the id of each user alongside each age in the new table. RAM is a different type of memory to what the database is stored in.
Complexity: Your code will be more complex if you use a separate table.
Each user should have an age unless it's unknown so it should be stored as a simple field in the user table and allow NULL. You could always force the user to input a birth date and get round the issue
