O MySQL não possui um refcursor como o Oracle. Se você planeja escrever um procedimento armazenado que retorna várias linhas/resultados definidos no MySQL, faça
DROP procedure IF EXISTS `sample`;
DELIMITER $$
CREATE PROCEDURE `sample`(p_rank IN INT)
BEGIN
select * from MyTable where id=p_rank;
END$$
DELIMITER ;
e chame
sample();
. Ele retornará um conjunto de resultados que você pode usar.