Your problem is that Plot [] does some funny things to make the construction more convenient, and one of the things that it does is simply not plot things that it cannot be numerically evaluated. So, in the expression you posted,
Plot[x[t], {t, 0, 10}]
just goes ahead and evaluates before making a rule change with a solution from NDSolve, creating an empty area graphic object. This graphic does not contain a reference to x, so there is nothing to replace it with.
You want to make sure that the replacement is done before the graphics. If you also want to make sure that the substitution can be done in several places, you want to save the solution in a variable.
sol = NDSolve[{x'[s] == - x[s], x[0] == 1}, x, {s, 0, 10}]; {Plot[Evaluate[x[t] /. sol], {t, 0, 10}], x[4] /. sol}
An estimate of [] on the graph ensures that Mathematica performs only one change once, and not once, for each point in the graph. It is not important to simply replace a rule like this, but it is a good habit to use it if you ever want to build something more complex.
To make this work in Manipulate, a simple way is to use With [], which is one of Schematic Mathematica's constructs; this is the one to use when you just want to replace something without using it as a variable that you can mutate.
For example,
Manipulate[ With[{sol = NDSolve[{x'[s] == - x[s], x[0] == 1}, x, {s, 0, 10}]}, {Plot[x[t] /. sol
Use the PlotRange parameter to fix the y axis; otherwise, things will jump in an ugly way, like the meaning of change. When you perform more complex actions with Manipulate, there are a number of options for controlling the speed of updates, which may be important if your ODE is complicated enough to solve for a while.