When I started learning CP (coming from IP), one of the first things I discovered is that model elements are less standardized in CP than in IP. An IP model typically contains a polynomial objective function and equality/inequality constraints involving polynomial functions (where you are hoping the polynomials are linear or at worst quadratic). Beyond that (and declaring types and bounds for variables), about the only model constructs I can think of are SOS1/SOS2 constraints and indicator constraints. Most high quality MIP solvers understand all the above, and if the solver does not do SOS1/SOS2 or indicator constraints, they can be replaced with more equations and inequalities (involving binary variables). Differences among solver tend to be more on the solution technique side than in which model elements they know.
With CP, there are a lot more types of constraints. I would guess that any CP solver worth a look would implement the "all different" constraint, but beyond some basic core set of constraints it gets interesting. IBM's CP Optimizer, for instance, implements constraints specifically intended for scheduling problems, such as "end before begin" (task A must end before task B begins), which I don't think you will find in every (or even most) CP solvers. So building an IP model for a job shop is largely independent of the solver you choose, whereas building a CP model for a job shop very much depends on the solver.
Another major difference is tied to that profusion of constraints. There are things you can express directly in a CP model that would be either impossible or extremely painful to express in an IP model. I would characterize the "all different" constraint as moderately painful in IP. (There's a straightforward way to model it, using a separate binary variable for each possible value of the original variable, but you might not like having that many binary variables in your model.) My experience with CP is limited, but the CP solvers I've seen have all been able to index a variable with a variable (i.e.,deal with the expression x[y] where x is a vector variable and y is a scalar variable that chooses one component of x). You can usually (always?) do the equivalent in an IP model, but it again involves copious binary variables and copious additional constraints, makes the model difficult to read, and has been known to cause severe brain cramps. In CP, the equivalent is as simple as writing "x[y]" or using a build in constraint function along the lines of "select(x, y)".
Other differences include the following. LP/IP tends to "like" continuous variables and "tolerate" integer variables, in the sense that integer variables make solving harder. CP tends to "like" integer variables (with finite, preferably small, domains) and "tolerate" continuous variables. How, or even whether, a CP solver handles continuous variables will differ among solvers. IP models tend, at least in my experience, to have tighter bounds than CP models do (although I'm sure someone can find exceptions), which means it may be a bit easier to tell how good your intermediate IP solution is compared to how good your intermediate CP solution is.