MacDonald var uekte sønn av John MacDonald, landarbeider, og Anne Ramsay, en hushjelp. Han het først James Ramsay, men tok senere sin fars etternavn og brukte helst Ramsay som fornavn. Å være uekte barn var et alvorlig handikapp i 1800-tallets Skottland, og det stigma som dette medførte påvirket MacDonald hele hans liv. Han fikk en grunnleggende utdannelse i småbyen Drainie og arbeidet der som lærerkandidat til han var 18 år, da han flyttet til London. Under resten av sitt liv hadde han ikke særskilt varme følelser for Skottland eller skotske holdninger.