I assume your large files are already sorted... You can simply add leading zeros to the keys, using `sed` ... Because the process is pipelined, there are no temporary files to deal with. The `sed` overhead it trivial. 

 join -a1 -11 <(sed -r 's/^([0-9]+)/000000000\1/;s/^0+([0-9]{9})/\1/' file1) \
 <(sed -r 's/^([0-9]+)/000000000\1/;s/^0+([0-9]{9})/\1/' file2)

Output is: 

 000000001 lkj klj lkj
 000000002 lkj lkj lkj
 000000003
 000000004
 000000005
 000000006
 000000007 lkj lkj lkj
 000000008
 000000009
 000000010
 000000011 lkk kll lkk

If you don't want the leading zeros in the output, you can strip them off with another simple inline `sed` step.

 join -a1 -11 <(sed -r 's/^([0-9]+)/000000000\1/;s/^0+([0-9]{9})/\1/' file1) \
 <(sed -r 's/^([0-9]+)/000000000\1/;s/^0+([0-9]{9})/\1/' file2) |
 sed -r 's/^0+//' 

Output

 1 lkj klj lkj
 2 lkj lkj lkj
 3
 4
 5
 6
 7 lkj lkj lkj
 8
 9
 10
 11 lkk kll lkk