While I don't think that what you are trying to accomplish is great, and tend to side Pikachu2000 ... If you really wanted to do this, you could use a "SELECT MAX(user_id) FROM users" to get the highest user id, but that's not necessarily the best thing to do (if you have a high traffic site with two users that sign up at the same time, they could both get the same id. It's not likely, but it could happen)
The other thing you could do, if you are using an auto-increment id field on the table, is perform the insert and get the auto-increment value, and then update the username on the record to the first name + id. This is a better solution that using the MAX query, the drawback being an additional update query.
If you are using Oracle as your database, this is easy to do with a sequence. Simple query the nextval from the sequence (SELECT user_seq.nextval FROM dual;) and use that value for both your primary key, and the concatenation with the first name when you perform the insert.