Yes, this is thought to be so.
The point of PBKDF2 is to produce the same output on the same input, otherwise it would be useless as a key derivation function (KDF).
I personally prefer Argon2 since you can tweak it a bit more, it makes a better usage of RAM and computing time, etc.
As explained on Wikipedia, PBKDF2 is not the best because it can be implemented on ASIC devices, which makes brute-force attacks using ASICs or even GPUs easier than for certain other KDFs.
Using a fixed salt for all entries just allows a dictionary attack against your specific application to be mounted, but I wouldn't worry too much about it, since this should still be hindered by the computational cost it would imply. That's true as long as you've generated the salt yourself and are not using a generic value (such as the empty one).
Note that the good practice would be either to derive the salt in a deterministic way (from the username, for example), or to store the salt in the database (so that each password has a different salt.)