Macdonald besuchte die Inverurie Academy. Er ging dann an die Universität Aberdeen und schloss als Master in Geschichte ab. Anschließend promovierte er ebenfalls an der Universität Aberdeen. Danach war er zunächst für den UnterhausabgeordnetenFrank Doran tätig, bevor er als Dozent für Geschichte an der Universität Aberdeen eine Anstellung fand. In den folgenden Jahren war Macdonald in der Wahlkampfplanung der Labour Party und wiederum für Frank Dornan tätig.[1] Erstmals trat Macdonald bei den Britischen Unterhauswahlen 1997 zu nationalen Wahlen an. In seinem Wahlkreis Moray konnte er die dritthöchste Stimmenanzahl für sich verbuchen und verpasste damit den Einzug in das Unterhaus.[3]
Schottisches Parlament
Bei den ersten Schottischen Parlamentswahlen im Jahre 1999 kandidierte Macdonald im Wahlkreis Aberdeen Central. Er gewann das Direktmandat vor dem SNP-Kandidaten Richard Lochhead.[4] Im Parlament bekleidete Macdonald in den folgenden Jahren verschiedene Posten. So war er zwischen März und November 2001 stellvertretender Staatssekretär für Verkehr und Planung und direkt anschließend bis zum Ende der Legislaturperiode stellvertretender Staatssekretär für Unternehmen, Verkehr und lebenslanges Lernen.[2] Sein Nachfolger wurde Alasdair Morrison. Nachdem er bei den Parlamentswahlen 2003 sein Mandat verteidigt hatte[5], wurde Macdonald zunächst zum stellvertretenden Staatssekretär für Unternehmen und lebenslanges Lernen bestellt. Von Oktober 2004 bis Juni 2005 bekleidete er dann die Position des stellvertretenden Staatssekretärs für Umwelt und Entwicklung ländlicher Regionen und war anschließend bis zum Ende der Legislaturperiode stellvertretender Staatssekretär für Gesundheit.[2] Bei den Parlamentswahlen 2007 verteidigte er knapp sein Direktmandat von Aberdeen Central.[6] Obwohl Macdonald seinen Stimmenanteil bei den Parlamentswahlen 2011 ausbauen konnte, unterlag er dem SNP-Kandidaten Kevin Stewart.[7] Da Macdonald jedoch auch auf der Regionalwahlliste der Labour Party für die Wahlregion North East Scotland auf den vorderen Rängen gelistet war, erhielt er infolge des Wahlergebnisses eines von sieben Listenmandaten für die Wahlregion.[8]