Por lo pronto, no estás indicando si las variables del prototipo son de entrada (IN), entrada-salida (INOUT) o de salida(OUT).
Un store procedure, a diferencia de una función, puede tener las variables en cualquiera de las tres formas. las store function no, sólo son de entrada, por eso no se indica.
El código quedaría mas o menos:
Código sql:
Ver originalDELIMITER $$;
DROP PROCEDURE IF EXISTS `sistema`.`NuevoProducto`$$
CREATE PROCEDURE `NuevoProducto`(IN IDProd INT, IN Cod VARCHAR, IN Descri VARCHAR, IN Foto VARCHAR, IN Rub INT, IN SubRub INT, IN FechaA DATE, IN IDUsu INT, IN Empre INT, IN Sucur INT)
BEGIN
INSERT INTO Productos(IdProducto, Codigo, Descripcion, FotoPath, Rubro, SubRubro, FechaAlta, UserALTA, Empresa, Sucursal)
VALUES(IDProd, Cod, Descri, Foto, Rub, SubRub, FechaA, IDUsu, Empre, Sucur);
END$$
DELIMITER ;$$