A little LINQ magic
var arr = new [] {null,"string1","string2","string3",null,"string4","string5","string6",null,"string7","string8","string9"};
var items = arr.Select( (item,index) => new {item, nextNull = Array.IndexOf(arr,null,index)} )
.GroupBy(x => x.nextNull)
.Where(x => x.Any(y => !String.IsNullOrEmpty(y.item)))
.Select(x => String.Join(" ",x.Select(y => y.item)));
Output:
string1 string2 string3
string4 string5 string6
string7 string8 string9
Live example: http://rextester.com/GOIT12899