if you know right here right now that you will never ever add / change or delete categories then I suppose the design you are proposing may make sense. its not one I'd want to use because I just don't trust users not to change things.
So I'd want (probably) 3 tables
users
profiletypes
id
descritpion
userprofiles
userid
profileid
I might be tempted to put in some classificiation / structure ont he profiel types (eg this category 'belongs to' or has a parent category of.... in case the users want to have soem sort of grouping or association
yes it may be a less efficient in terms of data storage, there may be a worse perfomance on retrival (but I doubt it will be significant)
however when the user comes at the last minute and demands a new profile you can quietly point them on how they manage their data (add a new profiletype and that automatically appears in the data capture screen). programming time 0, testing time 0, deployment time 0, training time 0. yes it costs a bit more on writing the system, but it does mean you are not going to be bugged by users at the last minutes when sods law dictates you will be under pressure from elsewhere