You use Emitter particles for your static particle crystals ("sprinkles"). For static particles that don't change their position like grass, trees, sprinkles, sesame seeds on a burger, ... it's better to use Hair particles. They are static and always dead.
Emitter particles are used for animation mainly. For birds, fishes, moths, dust, and fluid. They have a lifetime and die.
Looks like you knew that and have made the settings accordingly: Only 1 frame animation and set Frame Start and End to 1, lifetime 1. Unfortunately, it does not work because in frame 1 the particles are still unborn and not rendered by default. The nasty thing is that you see them in the viewport.
Possible fixes:
- use particle type Hair. You need to apply the scale of the instance object and scale it up a bit. For some reason, the particles are smaller when rendered as Hair.
- or set Frame Start and End to 0
- or tick the checkbox Render > Extras > Unborn in particle settings
- or render frame 2 and tick the checkbox Render > Extras > Dead in particle settings
- or use particle type Hair ;-)