Your array is not actually zero length, it has a length of one!
strFile is an array. The array can either be "nothing" or have at least one element to it; even if it is blank.
strFile = strSubCommittees.Split("|")
This will automatically assign at least one element to your array, even if it is blank and doesnt actually have a value in that element.
Try this in a console app to see the results:
Sub Main()
Dim strCommittees As String = ""
Dim strFile() As String = Nothing
If strFile Is Nothing Then
Console.WriteLine("strFile() is nothing")
Else
Console.WriteLine("strFile.Length : {0}", strFile.Length)
End If
Console.WriteLine("'Read blank value into array")
Console.WriteLine("strCommittees.Split(""|""c)")
strFile = strCommittees.Split("|"c)
Console.WriteLine("strFile.Length : {0}", strFile.Length)
Console.ReadLine()
End Sub