実際には、すべてのデータを共通の単位(バイトなど)に変換するか、「測定単位」を含む列を追加して、サイズ列自体を数値のままにしておく必要があります。
そうは言っても、GB / MB/KBまたはBで終わるデータに対して以下が機能するはずです。
select size
from t
order
by case when size like '%GB' then power(1024, 3) * substr(size, 1, length(size) - 2)
when size like '%MB' then power(1024, 2) * substr(size, 1, length(size) - 2)
when size like '%KB' then power(1024, 1) * substr(size, 1, length(size) - 2)
when size like '%B' then substr(size, 1, length(size) - 1)
end desc;
+-------+------------+
| size | bytes |
+-------+------------+
| 1GB | 1073741824 |
| 10MB | 10485760 |
| 100KB | 102400 |
| 1000B | 1000 |
+-------+------------+