The procedure which calls your GetIniSection must create the tmpStrings. But TStrings is an abstract class, it only serves as ancestor of advanced classes which do implement them. The most prominent class inheriting from TStrings is TStringList.
The calling procedure also must make sure that the created stringlist is destroyed again when it is no longer needed.
Therefore, your code should work when the calling procedure of GetIniSection does this:
var
tmpStrings: TStrings;
begin
tmpStrings := TStringList.Create;
try
if GetIniSection('MyProgam.ini', 'MySection', tmpStrings) then
// ... do something with tmpStrings
finally
tmpStrings.Free;
end;