It makes a mockery of the name All-Star. The whole race in general lacks excitement. Simple rule, you want in the All-Star race, then win a race. One driver from the showdown gets in, the winner. 2nd place gets nothing. No fan vote. Truex Jr. is having a great year, but he hasn't won, so no race for you either.
Past Champions who are running a full schedule should be in, and the winner from the previous year would be the only exceptions for individuals who didn't win.
I don't know how to make the race itself better other than to switch up the tracks. Charlotte just isn't exciting.