Ik vermoed dat dit een commando is dat vereist dat de grafische omgeving al opgestart is. Anders had je het kunnen toevoegen in /etc/rc.local, de "autoexec.bat" van linux, zeg maar.
Probeer eerst eens of een "wacht" commando al niet helpt: voeg in je script vóór het xinput commando een lijn toe met "sleep 3". Hierbij wordt het commando pas drie seconden later uitgevoerd.
Het zou mij verwonderen mocht je in autostart geen scripts kunnen aanroepen, maar mocht dat zo zijn, probeer dan het commando rechtstreeks in je autostart op te geven. Indien nodig kan je nog een sleep instructie toevoegen als volgt:
bash -c "sleep 3 && xinput set-button-map 'Microsoft Microsoft Basic Optical Mouse' 3 2 1 4 5 6 7 8 9"