Ese codigo esta perfecto tu problema debe ser otro.
Lo unico que puedo es decirte que tienes codigo redundante
Código SQL
[-]
CREATE PROCEDURE MARCAS
returns (MARCA VARCHAR(15))
AS
begin
for select distinct Marca
from productos
Where Marca is not Null
into :Marca
do
suspend;
end
Aunque pienso que podrias hacer la consulta directamente ya que no veo el caso para el suo del procedimiento
Código SQL
[-]
select distinct Marca
from productos
Where Marca is not Null