Here's how you do it.
Since sorting is ASCII-betical, you need to create an expression that converts Media Sub Type values into a values that will sort the way you want. You said you wanted:
TV Show
Movie
Short
So let's assign them this way:
1=TV Show
2=Movie
3=Short
...
and with that, we can use an expression to pull out the numerical values, which will sort the way we want:
if(regex(1=TV Show; 2=Movie; 3=Short;, /#(\d+)=#/[media sub type];\s*), [R1], 100)
What we've done above is to create sort string, and pulled out only the part that matches the media sub type, along with its accompanying sort index. For any MST you have not defined in the string, the sort value of 100 will be returned. You can add additional values to the string above - the pattern should be obvious: #=<mst value>; and the trailing ; is important.
Create a new user field, of type expression and enter that expression as the Calculated data. Name the expression something like _sort_MST.
Now you need to create a custom sort preset. In any Standard View, go to the tab's pulldown, and select Sort By > Custom, and click the Add button. From the a-z sort items, select your new field _sort_MST, and then save it as a Preset by clicking the Preset button. Call it something like Media Sub Type (custom sort). Once you have that saved, you can now use it instead of the limited Ascending, Descending, ... pre-defined sorts in the Category > Settings > Sorting pulldown.
You can work out your sort order in an expression column adjacent to a Media Sub Type column. See attached.