Not familiar with the PSX engines; but, that looks exactly like what you would see if you hadn't enabled alpha testing (and should do).
What alpha values do the objects have? If it's only 0 or 1 (i.e. completely transparent, or completely solid) then you don't need to sort the polygons at all, and rendering order doesn't matter. What you can do instead is enable alpha testing, and tell GL to discard pixels/fragments with a alpha value (e.g.) < 0.01
Then, the transparent pixels won't update the depth buffer, and so they won't 'mask off' things behind them that you would normally be able to see through the 'gaps'.
(If the polygons are semi-transparent - e.g. alpha value 0.5 - then this won't work, and you will need some polygon sorting. But you should still be able to get around it using far less than 7000 draws.)