Ohne Tests würde ich erwarten, dass so etwas funktioniert (vorausgesetzt, die ID-Spalte heißt id)
INSERT INTO new_table
SELECT email, user_name, password
FROM old_table
INNER JOIN
( SELECT MIN(id) FROM old_table GROUP by user_name ) minids
ON minids.id = old_table.id