Linq sorting on sort order of inner group
What about something like this:

assets.OrderBy(a =&gt; a.GalleryItems != null &amp;&amp; 
                    a.GalleryItems.Any()
                    ? a.GalleryItems.Min(gi =&gt; gi.SortOrder) 
                    : 1000)


It's actually a bit faster, since sorting the inner list takes longer than just getting the minimum value.