Gibts dafür unter linux nicht den "killall" befehl? Damit sollte man Prozesse beenden können, deren Namen man kennt.
Den würde ich ausführen (das "python /home/pi/start.py" führt ja nur den Konsolenbefehl aus, kannst da hinschreiben, was du willst, glaube ich zumindest).
Um das auszuführen brauchst du nen "false" Fall. In dem prüfst du, ob du jemals mplayer mittels GPIO gestartet hattest und wenn das wahr ist und ne Zeitverzögerung abgelaufen ist, killst du mplayer (Zeitverzögerung wegen Prellen).
Also einfach nen else if fall machen in dem du (GPIO.input(buttonPin)==0) prüfst (weiß nicht wie das implementiert ist und bin zu faul nachzuschauen kann sein, das das so nicht tut) etwas warten und dann eine variable prüfen, ob du das Skript jemals gestartet hast (sonst killst du mplayer einfach dauerhaft).
EDIT: Klar sollte sein, das das skript.py irgendwann returnen sollte, also nicht darauf warten, bis mplayer beendet wird, weil du sonst nie wieder zurück kommst. Kann man ja machen, dass mplayer seine Konsole nach /dev/null pumpt und so das Skript sofort weiter macht (sorry, bin Linux noob).