There is no easy way to get the oldest tweets available for a user.
Let’s say that @user1’s first tweet has id 11111, and the oldest of his tweets that you can get has the id 55555. With since_id=1 you are asking the tweets between tweet 11111 and his latest tweet. As explained in the doc, since_id automatically become the oldest ID available, meaning 55555 in my example. So it is as if you were asking the tweets between tweet 55555 and his latest tweet.
However, statuses/user_timeline always returns the most recent tweets in the range requested, meaning that since_id=1 doesn’t do anything.
To get older tweets you have to specify a max_id.