You can disable the sorting of sets (see example 8.2 sorting sets) which will command the plot to preserve the order as specified in the second argument (intersect). For example, given genres = c('Action', 'Animation', 'Comedy', 'Drama', 'Documentary', 'Romance', 'Short') and using the following code:
upset(movies, rev(genres), width_ratio=0.1, min_size=100, sort_sets=FALSE)
you get:
Please note the use of rev() to reverse the vector.