ho risolto riscrivendo la query così

codice:
DELIMITER $$

DROP FUNCTION IF EXISTS `xxxx`.`filtrosaldiconti`$$

CREATE DEFINER=`root`@`%` FUNCTION `filtrosaldiconti`(visconto varchar(10), parid varchar(30)) RETURNS varchar(10) CHARSET latin1
BEGIN
	RETURN (
	SELECT ...
	FROM ...
	JOIN .... 
	WHERE .....
	ORDER BY ....
	LIMIT 1 );
	
    END$$

DELIMITER ;