1 kJ = 1000J 1 kg = 1000g
Adjusting prefixes puts the units on the order of magnitude where they are easy to write in typical domain problems. For a heat-capacity and heat-transfer problem, I might end up with J/kg or kJ/kg being convenient, while for expressing the specific energy of jet fuel, I'll use MJ/kg because it's 39.
In the case of the kg, I'll bet that 1g was simply too small for the tools of the time to make an accurate model that was reproducible to the desired accuracy. For all I know, the weights were die-cast from the same melt, and the effect of scratches gets reduced as the surface-area/volume ratio goes down.
However all the standard prefixes still apply normally, ie you will have milligrams (mg) that are 1/1000000 of 1kg.
Therefore, a better gramme could be established by weighing a kilogramme and dividing by 1000.
This is also why an STP ml of water (used to) weigh a gramme, btw.
1 kJ = 1000 standard units of energy.
1 kg = 1 unit of mass.
Was this just an unfortunate historical accident? But if the too that much care to make a unit system that makes intuitive sense, why would they let in such an annoying exception? Why didnt they just make "gram" the standard unit or just made up another name?