Use this command:
/summon Zombie ~ ~1 ~ {CustomName:Clone,CustomNameVisible:1,Attributes:[{Name:generic.movementSpeed,Base:0.01}],CanPickUpLoot:true}
Which is proved it works by this video: https://www.youtube.com/watch?v=VDiI9NR9c1A
Then throw any item on the zombie. The zombie won't grab it! 😞
If the gamerule is off
Linked issues
is duplicated by
Attachments
Comments

Steven Verberne, 'true' is an accepted value...
in the same way that you can do
/gamerule [name of gamerule] 1
or
/gamerule [name of gamerule] true.
this is because json (and mc) is java-based, and java can use 'true' and a byte with value 1 interchangably, same with 'false' and a byte with value 0.
true/false is a 'boolean' value which is basically just a byte represented as true or false, but is still stored as a byte.

@unknown is right, see screenshot with NBTEdit..
But in the original string there was hidden an unicode character, that was probably the reason for the command not working.

When used with the de-unicodified command, the Zombie is picking stuff.
"if gamerule mobGriefing is off" indended, they'll grief you if they pick up your items
you have:
however it doesn't reconise it because the TRUE has to be a 1
so use this:
invalid