Particles render in viewport, but not in final
This is because the particle emitter is hidden in the render:



Particles inherit the object level properties of the emitter, so hiding the emitter object will hide the particles.

To exclude the emitter from the render without hiding the particles, disable Emitter in Particle settings > Render:



This is already disabled in your file.

To hide the emitter in the viewport without hiding particles, see Is it possible to hide particle emitters in the viewport without hiding particles?.