I figured it out. As Mike said the the directory paths don't match. However through some monkeying around I managed to use the exclude by taking advantage of the recursive dir property. Check this out:
<CreateItem Include="$(SolutionRoot)\directory2\**\*.*">
<Output TaskParameter="Include" ItemName="Directory2Files"/>
</CreateItem>
<CreateItem Include="$(SolutionRoot)\directory1\**\*.*" Exclude="@(Directory2Files->'$(SolutionRoot)\directory1\%(RecursiveDir)%(Filename)%(Extension)')">
<Output TaskParameter="Include" ItemName="Directory1Files"/>
</CreateItem>
I have to say it, I love MSBuild!