Você pode passar valores separados por vírgulas em procedimentos, mas precisa usar uma instrução preparada para usá-lo, pois os valores que você passa devem ser concatenados na consulta.
delimiter //
CREATE DEFINER=`test`@`%` PROCEDURE `test`.`get_details`(
in p_istudid int,
in p_icourseid int,
in p_branchid varchar(20)
)
BEGIN
set @qry = concat('select .... and branch.id in (\'',p_branchid,'\')');
prepare stmp from @qry;
execute stmp ;
deallocate prepare stmp;
END;//
delimiter ;