This is the workaround i found to this issue. I created two additional build steps, The first labeled "Check for Personal Build" is a Nant step that validation against the BUILD_IS_PERSONAL environmental variable, and if set, updates a teamcity env.PublishPath variable.
<project name="UpdateForPersonal" default="default">
<target name="default">
<if test="${environment::variable-exists('BUILD_IS_PERSONAL')}">
<echo message="##teamcity[setParameter name='env.PublishPath' value='fake']" />
</if>
</target>
</project>
The second step is a simple CMD the writes as dummy "Publish" message to the logs, but the "Custom published artifacts" values is from the "Deploy Artifacts To Artifactory" section padded by %env.PublishPath%.
If the build is personal, the publish to artifactory will not find any files and log warnings into the logs, but the build passes and no artifacts are published.
The value of %env.PublishPath% is set to "" by default in the configuration build.