I would modify your own solution. Instead of deleting any $1 that doesn't match the required regexp, use grep to filter them out:
awk '{print $1}' /tmp/test | grep -iE '^[a-z0-9]{12}$'
Another alternativeAlternatively in pure sed:
sed 's/^\([a-zA-Z09]\Z0-9]\{12\}\)[ \t]\+.*/\1/' /tmp/test