Because the numbers 001, 01, 1 are all the same (and so is 1 with an infinite numbers of leading 0), numbers are printed without leading zeros. It's the same way we normally write numbers.
Note that matlab has no concept of a binary number. For matlab the number 1001, is the decimal integer between 1000 and 1002, not the equivalent of decimal 9.
As I said before there are matlab functions to manipulate bits of numbers without having to convert them to string or decimal numbers posing as binary.
Also be aware that str2num is a very dangerous function, str2double is much safer. str2num will not just convert strings to numbers, it will also execute any instruction in the string (e.g. format the hard drive).