You have a design issue based on trying to sort non-comparable identifiers. It will be a permanent pain in the patootie until you step back to review and redesign this feature. Using so many mixtures of size descriptions as are you are using, it will be impossible to straighten out and still DIRECTLY use these measurements. However, there is always a back door.
Consider a table that you can use that identifies sizing info. The key to the table is the raw sizing info. It might be "1mm" or "1.75in" or "M12" - whatever sizing designation you use in the actual product. But have a second field in that table that holds a conversion of EVERY one of those indicators to a uniform numeric sizing scale in whatever units you want to use.
I don't know your units, but lets say for argument's sake that you had millimeters as your preferred "master" sizing unit. So the first entry would be <"1mm", 1.00000>. The next would be <"1.75in", 44.4500> Then you might have <"M12", 35.0000>. In other words, a master size conversion table to bring everything to uniform units. I would be surprised if you DIDN'T already have something like this anyway.
The next step would be a query to JOIN the size of your product to this sizing table to find the uniform size. Then sort by THAT quantity. At that point, you don't care if you have 800 new products as long as most of them have sizes that are already in, or could be added to, your sizes table. Then you only have to worry about differences between "1mm" and "1 mm" - which could be handled either by removing all spaces from the product size field or by making two entries in the size lookup table to match the different sizing nomenclature with different spaces.