Why is this MATLAB butterworth filter giving me wrong results
Your filter is passing only between 1 and 63 Hz, assuming that you meant to say that the sampling rate is 128Hz.

Since you are removing everything below 1Hz, the plot you have looks reasonable. 

The range of values in your original signal is relatively small (4395 to 4420,) and the range of values in the output plot is also relatively small (cannot tell exactly due to scaling, but it looks small.)

The high values (+4000, -2000) in your output plot are the step response of your filter.  Your data jumps from zero (before the first data point comes in) to around 4400 at the beginning.  This step causes the filter to overreact - the short peaks up to 4000 and down to -2000 are the result.  This damps out right away, and the rest looks pretty much like what would be expected.

The offset (about 4400) looks like a DC component to the filter.  Since DC is lower than 1Hz, it gets removed as well.