I was able to fix this by editing Thoughts_Situation_Social.xml to include the appropriate nullifyingPrecepts.
Code Select
<ThoughtDef>
<defName>SoldPrisoner</defName>
<thoughtClass>Thought_Tale</thoughtClass>
<workerClass>ThoughtWorker_Tale</workerClass>
<taleDef>SoldPrisoner</taleDef>
<validWhileDespawned>true</validWhileDespawned>
<nullifyingPrecepts>
<li MayRequire="Ludeon.RimWorld.Ideology">Slavery_Abhorrent</li>
<li MayRequire="Ludeon.RimWorld.Ideology">Slavery_Horrible</li>
<li MayRequire="Ludeon.RimWorld.Ideology">Slavery_Disapproved</li>
<li MayRequire="Ludeon.RimWorld.Ideology">Slavery_Acceptable</li>
<li MayRequire="Ludeon.RimWorld.Ideology">Slavery_Honorable</li>
</nullifyingPrecepts>
<stages>
<li>
<label>sold prisoner to slavery</label>
<baseOpinionOffset>-15</baseOpinionOffset>
</li>
</stages>
<nullifyingTraits>
<li>Psychopath</li>
</nullifyingTraits>
<nullifiedIfNotColonist>true</nullifiedIfNotColonist>
</ThoughtDef>