You've actually got two problems here - one is that you're trying to set values into a null array, and the other is how you're trying to find whether the first character of the line is a space.
I would use a List<String> for the non-space-starting lines, as you can't tell how many there will be, but then you're assuming that every line will be non-empty. Fortunately it's easy to fix this using StartsWith.
I'd then use LINQ if you're using .NET 3.5 or higher, which makes the whole thing really simple:
List<string> mainAndSublines = File.ReadAllLines(filename)
.Where(x => !x.StartsWith(" "))
.ToList();
In .NET 4 you can make this more memory-efficient using File.ReadLines instead of File.ReadAllLines - this streams the file instead of loading the whole thing into memory to start with.