Every variable has to be assigend a value/initialized, before you can use it.
Older/closer to the metal languages like native C++ would not have such a warning, and thus use whatever data happened to be written in that memory location by pure chance. Wich was never something sensible. C# simply will not compile if it detects such a mistake.
I am going to take a guess that AudioMixer is a class, so you need to create a instance to use it:
public AudioMixer mixer = new AudioMixer();
However there are special cases like Factory Pattern, and I have to look up wich approach AudioMixer uses.
Edit: Assuming I got the right AudioMixer class, it appears to be a singleton. But I can not find it's factory method: https://docs.unity3d.com/ScriptReference/Audio.AudioMixer.html
Edit2: I can not find a non-Designer way to create a AudioMixer instance online. So I added the Unity3D tag.
Edit3: Credit to 3Dave for this: "AudioMixer is a design-time class tied to the Audio Mixer window in the editor. It should never be instantiated or dynamically created."
So it is indeed never supposed to be created by anything but the designer. And thus a variable in code makes not a lot of sense.