It does not exist. An argument goes as follows. Suppose an algorithm exists that sorts your list in $O(n)$ time, then the same algorithm can be used to sort any list in $O(n)$ time as follows.
Given an arbitrary list $L$ of size $n$, find the smallest element in $O(n)$ time. Call this element $s$. Construct a new list $L'$ of size $2n$ whose elements are as follows. The first $n$ elements are $s-n, s-n+1, s-n+2, \ldots, s-1$ and the last $n$ elements are exactly the elements in the list $L$.
This is again an operation that can be done in $O(n)$ time and $O(n)$ space.
Clearly $L'$ satisfies the condition that you had stated. Now, use your algorithm to sort the list $L'$ in $O(n)$ time and return the last $n$ elements of $L'$, which is the sorted version of the list $L$. Moreover, this is obtained in $O(n)$ time.
Since $O(n)$ time algorithm to sort an arbitrary list does not exist, the algorithm you seek does not exist as well.
Edit: I am precluding algorithms that are not comparison sorts. If you allow non-comparison sorts (like Radix sorts), then well, any list can be sorted in $O(nk)$ time where $k$ is the number of digits in any number.