Bueno, aqui hay un pequeño detalle, estas usando solo una función if pero para hacer un "barrido" de información, deberias de usar un
WHILE
Código:
Query.SQL.Clear;
Query.SQL.Text := 'Select Producto from Productos order by Producto asc';
Query.Open;
Query.first;
WHILE not Query.eof DO begin
Combo.Items.Add(Query.Fields[0].AsString);
Query.Next;
end;
Query.Close;
Ahora, tambien hay que asegurarnos que la consulta realmente tenga datos...
Salud OS