That’s because the Particle World Producer property expects its X coordinate (in this example) to be a percentage of comp width relative to the comp center. So the the second line of the expression calculates how far the null’s x position is from the x position of the comp center and divides that by the comp width to get a normalized value between -.5 and +.5.
Unfortunately, all the characters in a text layer get the styling of the first character. You’re pretty much limited to what you can accomplish with animators (fill color, stroke width, etc.). Your second question though, could be done with a fill color animator and an expression selector that has an Amount expression like this: