Why not make your own ini class that allows an array of string for a value - how about like this:

[pascal]
unit GameIni;

interface

uses
IniFiles, Classes;

Type
TGameIni = Class(TiniFile)
Function ReadArrayString(const Section, Ident: String; Default : Array of String) : TStringList;
End;

implementation

{ TGameIni }

function TGameIni.ReadArrayString(const Section, Ident: String;
Default: Array of String): TStringList;
Var
Values, S : String;
SA : TStringList;
I : Integer;
begin
Values := ReadString(Section,Ident,'');
SA := TStringList.Create;
If Values = '' then
Begin
For I := 0 to High(Default) do
SA.Add(Default[I]);
End
Else
Begin
Values := Values + ',';
While Pos(',',Values) > 0 do
Begin
S := Copy(Values,1,Pos(',',Values)-1);
SA.Add(S);
Values := Copy(Values,Pos(',',Values)+1,Length(Values));
End;
End;
Result := SA;
end;

end.
[/pascal]

and you'll be able to use it like this:
[pascal]
procedure TForm1.Button1Click(Sender: TObject);
Var
Ini : TGameIni;
begin
Ini := TGameIni.Create(ExtractFilePath(Application.ExeNam e)+'/Game.ini');
ListBox1.Items.AddStrings(Ini.ReadArrayString('Tes t','List',['a','b','c']));
end;
[/pascal]