Użyj:
DROP FUNCTION IF EXISTS `example`.`test` $$
CREATE FUNCTION `example`.`test` (param INT) RETURNS VARCHAR(32)
BEGIN
DECLARE new_username VARCHAR(32);
SELECT `username`
INTO new_username
FROM `users`
WHERE `ID` = param;
RETURN COALESCE(new_username, 'Username not found');
END $$
Pamiętaj, że długość VARCHAR wartości RETURN odpowiada zmiennej, która powinna odpowiadać długości kolumny, którą chcesz zwrócić.