Francium has isotopes so how can its atomic mass be a whole number?
For elements with no stable isotope (i.e. Francium, Radium, and Actinium), the atomic mass is chosen to be that of the longest lived isotope. 

More generally, the masses for stable elements are reflective of the natural abundance of each isotope in a sample of the element. Sodium has more than one isotope, so the statement is not really true, though only one of them is stable and included in the averaging. In this case, it's important to remember that the mass of protons and neutrons are only approximately 1 amu, so even if there is only one isotope there's no requirement that it have an integer atomic mass.